In a typical retail environment, when customers have finished selecting items they wish to purchase, they stand in a queue at a register waiting for an employee to complete their purchase transaction. Many businesses maintain a number of registers sufficient to serve a maximum number of customers. Typically, during normal shopping hours, some of these registers remain unstaffed, and are only used during peak shopping hours and seasons, such as the week before Christmas. A business must trade off the amount of time a customer is forced to wait in a queue against the number of registers that are open. If too few registers are open, customer wait times may be excessive, resulting in decreased customer satisfaction that may eventually result in lost business as these customers refuse to return to the business. However, if too many registers are open, there may be times when registers are staffed but no customers are ready to complete their transactions. This results in lost efficiency since the employees still must be paid to staff the registers while waiting for customers to appear, when they could be doing other productive work within the business.
Queues are also found in other environments, such as manufacturing facilities, where assemblies may queue up before a station where they are processed. For example, in auto manufacturing, partially assembled cars may queue to be painted. In an ideal situation, the manufacturing queue would be very short. However, there may be occasions when the queue grows substantially, putting time pressure on the overall assembly process.
Overview
A method for analyzing queues using video analytics is provided. The method includes receiving a video comprising a plurality of images of a scene. The scene includes a queue region and an operation region. The method also includes processing at least a first image of the plurality of images to determine an occurrence of a first event associated with the operation region, and processing at least a second image of the plurality of images to determine an occurrence of a second event associated with the operation region. The method further includes determining an operation time based on an amount of time between the first event and the second event, processing at least a third image of the plurality of images to determine a quantity of entities in the queue region, and determining a wait time based on the operation time and the quantity of entities in the queue region.
In another embodiment, the first event includes a first of the entities entering the operation region. In a further embodiment, the second event includes the first of the entities leaving the operation region. In still another embodiment, the second event includes a second of the entities entering the operation region.
In another embodiment, the operation of determining the operation time based on the amount of time between the first event and the second event includes determining a first time when the first event occurred, determining a second time when the second event occurred, and calculating the operation time by subtracting the first time from the second time.
In a further embodiment, the operation of determining the operation time based on the amount of time between the first event and the second event includes determining an image rate of the video, determining a number of the images in the video between the first event and the second event, and calculating the operation time by dividing the number of images by the image rate.
In another embodiment, the operation of determining the operation time includes averaging operation times for more than one of the entities.
In a further embodiment, the queue region includes the operation region. In another embodiment, the operation of determining the wait time includes multiplying the operation time by the quantity of entities in the queue region.
In another embodiment, a video processing system comprising an interface configured to receive video, and a processor coupled with the interface is provided. The processor is configured to receive a video comprising a plurality of images of a scene through the interface. The scene includes a queue region and an operation region. The processor is also configured to process at least a first image of the plurality of images to determine an occurrence of a first event associated with the operation region, and to process at least a second image of the plurality of images to determine an occurrence of a second event associated with the operation region. The processor is further configured to determine an operation time based on an amount of time between the first event and the second event, to process at least a third image of the plurality of images to determine a quantity of entities in the queue region, and to determine a wait time based on the operation time and the quantity of entities in the queue region.
In a further embodiment, a computer-readable medium having instructions stored thereon for operating a computer system is provided. The instructions, when executed by the computer system, direct the computer system to receive a video comprising a plurality of images of a scene. The scene includes a queue region and an operation region. The instructions further direct the computer system to process at least a first image of the plurality of images to determine an occurrence of a first event associated with the operation region, and to process at least a second image of the plurality of images to determine an occurrence of a second event associated with the operation region. The instructions also direct the computer system to determine an operation time based on an amount of time between the first event and the second event, to process at least a third image of the plurality of images to determine a quantity of entities in the queue region, and to determine a wait time based on the operation time and the quantity of entities in the queue region.